package com.hospital.register.vo.core.common;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ToString
@ApiModel(description = "分页查询排班数据的结果")
public class ScheduleQueryVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    @Id
    private String id;

    @ApiModelProperty(value = "医院编号")
    private String hoscode;

    @ApiModelProperty(value = "科室编号")
    private String depcode;

    @ApiModelProperty(value = "职称")
    private String title;

    @ApiModelProperty(value = "医生名称")
    private String docname;

    @ApiModelProperty(value = "擅长技能")
    private String skill;

    @ApiModelProperty(value = "排班日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date workDate;

    @ApiModelProperty(value = "排班时间（0：上午 1：下午）")
    private Integer workTime;

    @ApiModelProperty(value = "可预约数")
    private Integer reservedNumber;

    @ApiModelProperty(value = "剩余预约数")
    private Integer availableNumber;

    @ApiModelProperty(value = "挂号费")
    private BigDecimal amount;

    @ApiModelProperty(value = "排班状态（-1：停诊 0：停约 1：可约）")
    private Byte status;

    @ApiModelProperty(value = "排班编号（医院自己的排班主键）")
    private String hosScheduleId;

    @ApiModelProperty(value = "其它信息")
    private OtherInfo param;

    @ApiModel(value = "其它信息")
    @Data
    public static class OtherInfo implements Serializable {

        @ApiModelProperty(value = "医院名称")
        private String hosname;

        @ApiModelProperty(value = "科室名称")
        private String depname;

        @ApiModelProperty(value = "星期 （中文）")
        private String dayOfWeek;

    }
}
